package redis
import (
	"context"
	"fmt"
	"go.uber.org/zap"
	"github.com/spf13/viper"
	"github.com/redis/go-redis/v9"
)
func Init()(err error){
	rdb := redis.NewClient(&redis.Options{
		Addr:     fmt.Sprintf("%s:%d",viper.GetString("redis.host"),viper.GetInt("redis.port")), // Redis 服务器地址
		Password: viper.GetString("redis.password"),               // 密码
		DB:       viper.GetInt("redis.db"),                // 使用默认 DB
		// 连接池配置
		PoolSize:     viper.GetInt("redis.pool_size"),    // 连接池大小
		MinIdleConns: viper.GetInt("redis.minidle_conns"),    // 最小空闲连接数
		
	})

	ctx := context.Background()

	// 测试连接
	pong, err := rdb.Ping(ctx).Result()
	if err != nil {
		zap.L().Info("redis connet error",zap.Error(err))
	}
	fmt.Println(pong) // 输出: PONG
	if err := rdb.Close(); err != nil {
        zap.L().Info("Failed to close Redis client", zap.Error(err))
    }
	return 
}